<template>
  <div>
     <breadcrumb></breadcrumb>
    <!-- 搜索表单 -->
    <!-- @submit.native.prevent停止默认行为 @submit是提交-->
    <el-form :inline="true" class="demo-form-inline"  @submit.native.prevent>
      <el-form-item label="名称">
        <el-input v-model="name"  placeholder="请输入店铺名称" @keyup.native.enter="liststoreByName"></el-input>
      </el-form-item>
      <el-form-item>
        <!-- 点击回车 -->
        <el-button type="primary" @click="liststoreByName"  >查询</el-button>
      </el-form-item>
    </el-form>
    <!-- 分割线 -->
    <el-divider content-position="left">店铺地图</el-divider>
     <!-- 电影院列表 -->
     <div id="main" style="border:1px solid #444; width:100%; height:200px;"></div>
    <!-- 分割线 -->
    <el-divider content-position="left">店铺列表</el-divider>
    <!-- 表格 -->
    <template>
      <el-table
        :data="store.result"
        style="width: 100%">
        <el-table-column
          prop="store_id"
          label="编号"
          align="center"
          width="100">
        </el-table-column>
        <el-table-column
          prop="Chinese"
          label="店铺名称"
          align="center"
          width="180"
         >
        </el-table-column>
        <el-table-column
          label="店铺图片"
          width="150">
          <template slot-scope="scope">
            <img v-show="! scope.row.img" src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" alt="" width="60px">
            <img v-if="imgnone" :src="'http://localhost:3000/images/'+ scope.row.img" alt="" width="60px">
            <img v-else :src=" scope.row.img" alt="" width="60px">
          </template>
        </el-table-column>
        <el-table-column
          prop="TEL"
          label="电话号"
          align="center"
          width="150"
        >
        </el-table-column>
          <el-table-column  align="center" label="操作">
          <template slot-scope="scope">
            <el-button type="info" circle icon="el-icon-location-outline"  @click="moveTo(scope.$index)"></el-button>
            <el-button type="success" icon="el-icon-s-shop" circle  @click="$router.push(`/home/shop-details/${scope.row.store_id}`)" ></el-button>
            <el-button type="primary" icon="el-icon-edit"  @click="$router.push(`/home/shopRevise/${scope.row.store_id}`)" circle></el-button>
            <el-button type="danger" icon="el-icon-delete" @click=" DeleteItem(scope.row.store_id)" circle></el-button>
          </template>           
        </el-table-column>
      </el-table>
    </template>

    <br>
    <!-- 分页 -->
    <el-pagination
      background
      :total=store.total
      :page-size=store.pagesize
      layout=" ->,prev, pager, next,total,jumper"
      @current-change="ChangCurrentPage"
    >
    </el-pagination>

 
    
  </div>
</template>

<script>
import breadcrumb from "../components/breadcrumb.vue";
import httpApi from "@/http";
import AMapLoader from '@amap/amap-jsapi-loader';
window._AMapSecurityConfig = {
          securityJsCode:'28ac2940269eb079ba5ba8568eb907be',
      }
  export default {
    components: { breadcrumb},
     data(){
        return{
          name:'',
          store:{
            page: 1,
            pagesize:5,
            result:[],
            total:1
          },
          imgnone: true,
        }
     },
     methods:{
      // 调转详情页

      // 移动地图标点
      moveTo(i){
        let {longitude, latitude} = this.store.result[i]
        // 设置地图的中心的位置  setCenter(center, immediately, duration)
        // center (([number, number] | LngLat)) 中心点经纬度
        // immediately (Boolean = false) 是否立即过渡到目标位置
        // duration (Number?) 如果使用动画过度，动画过度的时长控制，单位 ms，默认值是内部自动计算的一个动态值。
        this.map.setCenter([longitude, latitude], false, 500)
      },
      // 地图
      initMap(){
        AMapLoader.load({
          key:"d666a21d4d3f2c43ab2f67fef19a9531",   // 申请好的Web端开发者Key，首次调用 load 时必填
          version:"2.0",      // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
          plugins:[],       // 需要使用的的插件列表，如比例尺'AMap.Scale'等
        }).then((AMap)=>{
          this.map = new AMap.Map("main",{  //设置地图容器id
            viewMode:"3D",    //是否为3D地图模式
            zoom:12,           //初始化地图级别
            center:[116.4035,39.915], //初始化地图中心点位置
          });
        })
        // 基于AMap，为所有的店铺都添加一个Marker点标记
        // 创建一个 Marker 实例：
        this.store.result.forEach(item=>{
          let marker = new AMap.Marker({
            position: [item.longitude, item.latitude],
            title: item.cinema_name
          })
          this.map.add(marker) // 将Marker添加到地图上
        })
      },
      // 删除店铺列表
      DeleteItem(store_id){
        // 弹窗
        this.$confirm('此操作将永久删除用户信息, 是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          // 确定
          httpApi.storeApi.deleteStoreById({store_id}).then(res =>{
            if(res.data.code == 200){
               console.log("删除成功",res);
              // 提醒用户删除成功
              this.$message({ type: 'success', message: '删除成功!' });
              // 刷新
              this.search()
            }else{
              // 提醒用户删除失败
              this.$message.error('错了哦，删除失败');
            }
           
          })
        }).catch(() => {
            this.$message({ type: 'info', message: '已取消删除' });          
          });
        },

        // 点击查询按钮后执行，需要判断输入框中是否有关键字
        //trim()是去掉字符串两端的空格
        search(){
          if(this.name.trim() == ''){
            //当无输入值
            this.liststore()
          }else{
            //有输入值
            this.liststoreByName()
            
          }
        },


        // 封装店铺列表
        liststore(){
          // let url = "http://localhost:3000/store/list?page=1&pagesize=100"
          let params = {page: this.store.page ,pagesize: this.store.pagesize}
          httpApi.storeApi.queryAllStoreList(params).then(res =>{
            // console.log("店铺列表",res);
            this.store = res.data.data
            if(this.store.result.img == /^(https[^"]*)"/){
              imgnone = false
            }
          })
        },
         //变化当前页
         ChangCurrentPage(page){
            // console.log("当前页数",page);
            this.store.page = page
            this.search()
        },

        // 通过昵称关键字查询演员列表
        liststoreByName(){
          let params = {Chinese:this.name.trim(),page:this.store.page, pagesize: this.store.pagesize}
            httpApi.storeApi.queryStoreByNameLike(params).then(res =>{
              // console.log("店铺模糊查询",res);
              this.store = res.data.data
              if(this.store.result.img == /^(http[^"]*)"/){
                imgnone = false
              }
            })     
          }
        },

      // 页面挂载完毕后，发送请求，加载列表数据
      mounted(){
        //DOM初始化完成进行地图初始化
        this.initMap();
        //页面挂在完毕后，发送请求，加载列表数据
        this.liststore()
      }
  }
</script>

<style lang="scss" scoped>

</style>